package advice;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

import java.util.Arrays;

//日志增强
@Aspect
public class AnnotationAdvice {
    @Before("execution(* service..*.*(..))") //一个参数
    public void before(JoinPoint jp) {
        //jp.getTarget() 目标对象 就是哪个类
        //jp.getSignature().getName()可以取到方法名
        //jp.getArgs()  方法参数
        System.out.println("调用注解了" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法，方法的参数是：" + Arrays.toString(jp.getArgs()));
    }

    @AfterReturning(pointcut ="execution(* service..*.*(..))",returning = "result")        //两个参数 写属性 属性值
    public void afterReturnning(JoinPoint jp, Object result) {
        System.out.println("调用注解了" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法，方法的返回值是：" + result);
    }
}
